/**
 * 描述: 云函数入口文件
 * 版权: Copyright (c) 2019
 * 公司: 深圳市网商天下科技开发有限公司
 * 作者: 许堉颖
 * 版本: 1.0.0
 * 创建时间: 2019/5/7 10:21
 */

// web后台接口
const apiRoute = require('./apiRoute.js');

/**
 * 云函数入口函数
 * @param event 调用云函数时传入的参数，外加后端自动注入的小程序用户的 openid 和小程序的 appid
 * @param context 调用信息和运行状态
 */
exports.main = async (event, context) => {

  // action: 调用的方法名, params: 参数
  let { action, params, source } = event;
  console.log(event);

  // 请求结果
  let result = {
    code: -1008,
    errMsg: '接口不存在~'
  }

  if (event['queryString'] && event['queryString']['action'] === 'initDatabase'){
    // 接口存在
    if (apiRoute['initDatabase']) {
      try {
        result = apiRoute['initDatabase']();
      } catch (err) {
        result = {
          code: -1009,
          errMsg: err.toString() || '云函数访问异常~'
        }
      }
    }

    // 接口名称
    result.apiName = action;
    return result;
  }

  // web请求参数转格式
  if (source === 'WEB' && params){
    params = JSON.parse(params);
  }

  // 接口存在
  if (apiRoute[action]) {
    try {
      result = await apiRoute[action](params);
    } catch(err){
      result = {
        code: -1009,
        errMsg: err.toString() || '云函数访问异常~'
      }
    }
  }

  // 接口名称
  result.apiName = action;

  // console.log('==========result==========');
  // return {event, result};
  return result;
}